home *** CD-ROM | disk | FTP | other *** search
- TBSV(3F) Last changed: 11-2-98
-
-
- NNAAMMEE
- SSTTBBSSVV, DDTTBBSSVV, CCTTBBSSVV, ZZTTBBSSVV - Solves a real or complex triangular
- banded system of equations
-
- SSYYNNOOPPSSIISS
- Real
-
- CCAALLLL SSTTBBSSVV ((_u_p_l_o,, _t_r_a_n_s,, _d_i_a_g,, _n,, _k,, _a,, _l_d_a,, _x,, _i_n_c_x))
-
- Double precision
-
- CCAALLLL DDTTBBSSVV ((_u_p_l_o,, _t_r_a_n_s,, _d_i_a_g,, _n,, _k,, _a,, _l_d_a,, _x,, _i_n_c_x))
-
- Complex
-
- CCAALLLL CCTTBBSSVV ((_u_p_l_o,, _t_r_a_n_s,, _d_i_a_g,, _n,, _k,, _a,, _l_d_a,, _x,, _i_n_c_x))
-
- Double complex
-
- CCAALLLL ZZTTBBSSVV ((_u_p_l_o,, _t_r_a_n_s,, _d_i_a_g,, _n,, _k,, _a,, _l_d_a,, _x,, _i_n_c_x))
-
- IIMMPPLLEEMMEENNTTAATTIIOONN
- IRIX systems
-
- DDEESSCCRRIIPPTTIIOONN
- SSTTBBSSVV and DDTTBBSSVV solve a real triangular banded system of equations.
-
- CCTTBBSSVV and ZZTTBBSSVV solve a complex triangular banded system of equations.
-
- These routines solve one of the following systems of equations, using
- the operation associated with each:
-
- EEqquuaattiioonnss OOppeerraattiioonn
- -_1
- _A_x=_b _x <- _A _x
- _T -_T
- _A _x=_b _x <- _A _x
- _H -_H
- _A _x=_b _x <- _A _x (CCTTBBSSVV and ZZTTBBSSVV only)
-
- where
-
- * _b and _x are _n-element vectors
-
- * _A is either a unit or nonunit _n-by-_n upper or lower triangular band
- matrix with (_k+1) diagonals
- -_1
- * _A is the inverse of _A
- _T
- * _A is the transpose of _A
- -_T _T
- * _A is the inverse of _A
- _H
- * _A is the conjugate transpose of _A
- -_H _H
- * _A is the inverse of _A
-
- On input, the right-hand side vector _b is stored in the array argument
- _x. On output, the solution vector _x overwrites _b in the same array
- argument _x.
-
- These routines have the following arguments:
-
- _u_p_l_o Character*1. (input)
- Specifies whether the matrix is an upper or lower triangular
- matrix, as follows:
-
- _u_p_l_o = 'U' or 'u': _A is an upper triangular matrix.
- _u_p_l_o = 'L' or 'l': _A is a lower triangular matrix.
-
- _t_r_a_n_s Character *1. (input)
- Specifies the operation to be performed, as follows:
- -_1
- _t_r_a_n_s = 'N' or 'n': _x <- _A _x
-
- -_T
- _t_r_a_n_s = 'T' or 't': _x <- _A _x
-
- -_T
- _t_r_a_n_s = 'C' or 'c': _x <- _A _x (SSTTBBSSVV, DDTTBBSSVV), or
- -_H
- _x <- _A _x (CCTTBBSSVV, ZZTTBBSSVV)
-
- _d_i_a_g Character *1. (input)
- Specifies whether _A is unit triangular, as follows:
-
- _d_i_a_g = 'U' or 'u': _A is assumed to be unit triangular.
- _d_i_a_g = 'N' or 'n': _A is not assumed to be unit triangular.
-
- _n Integer. (input)
- Specifies the order of matrix _A. _n >= 0.
-
- _k Integer. (input)
- _u_p_l_o = 'U' or 'u': _k specifies the number of superdiagonals
- of matrix _A.
- _u_p_l_o = 'L' or 'l': _k specifies the number of subdiagonals
- of matrix _A.
- _k >= 0.
-
- _a Array of dimension (_l_d_a,_n). (input)
- SSTTBBSSVV: Real array.
- DDTTBBSSVV: Double precision array.
- CCTTBBSSVV: Complex array.
- ZZTTBBSSVV: Double complex array.
-
- Before entry with _u_p_l_o = 'U' or 'u', the leading (_k+1)-by-_n
- upper triangular part of array _a must contain the upper
- triangular band part of the matrix of coefficients, supplied
- column-by-column, with the leading diagonal of the matrix in
- row (_k+1) of the array, the first superdiagonal starting at
- position 2 in row _k, and so on. The top left _k-by-_k
- triangle of array _a is not referenced.
-
- Before entry with _u_p_l_o = 'L' or 'l', the leading (_k+1)-by-_n
- part of array _a must contain the lower triangular band part
- of the matrix of coefficients, supplied column-by-column,
- with the leading diagonal of the matrix in row 1 of the
- array, the first subdiagonal starting at position 1 in row
- 2, and so on. The bottom right _k-by-_k triangle of array _a
- is not referenced.
-
- When _d_i_a_g = 'U' or 'u', these routines assume that all
- elements of array _a that represent diagonal elements of the
- matrix _A are 1. In this case, neither of these routines
- will reference any of the diagonal elements.
-
- _l_d_a Integer. (input)
- Specifies the first dimension of _a as declared in the
- calling program. _l_d_a >= (_k+1).
-
- _x Array of dimension 1+(_n-1) * |_i_n_c_x|. (input and output)
- SSTTBBSSVV: Real array.
- DDTTBBSSVV: Double precision array.
- CCTTBBSSVV: Complex array.
- ZZTTBBSSVV: Double complex array.
- Contains the vector _x.
-
- On input, _x contains the right-hand side vector _b. On
- output, the solution vector overwrites array _x.
-
- _i_n_c_x Integer. (input)
- Specifies the increment for the elements of _x. _i_n_c_x must
- not be 0.
-
- NNOOTTEESS
- The following program segment transfers an upper triangular band
- matrix from conventional full matrix storage to band storage:
-
- DO 20, J = 1, N
- M = K + 1 - J
- DO 10, I = MAX( 1, J - K ), J
- A( M + I, J ) = MATRIX( I, J )
- 10 CONTINUE
- 20 CONTINUE
-
- The following program segment transfers a lower triangular band matrix
- from conventional full matrix storage to band storage:
-
- DO 20, J = 1, N
- M = 1 - J
- DO 10, I = J, MIN( N, J + K )
- A( M + I, J ) = MATRIX( I, J )
- 10 CONTINUE
- 20 CONTINUE
-
- Tests for singularity or near-singularity are not included in these
- routines. You must perform such tests before calling these routines.
-
- These routines are Level 2 Basic Linear Algebra Subprograms (Level 2
- BLAS).
-
- When working backward (_i_n_c_x < 0), each routine starts at the end of
- the vector and moves backward, as follows:
-
- _x(1-_i_n_c_x * (_n-1)), _x(1-_i_n_c_x * (_n-2)), ..., _x(1)
-
- SSEEEE AALLSSOO
- This man page is available only online.
-